10.7 编程式创建@aspectj代理
除了在配置中使用来声明代理外,你还可以以编程的方式创建代理,用于通知目标对象。
更多Spring’s AOP API信息,请关注下个章节.
在这里我们专注于能够使用@AspectJ切面自动创建代理。
org.springframework.aop.aspectj.annotation.AspectJProxyFactory这个类能够为目标对象创建代理。
该代理可以被一个或多个@AspectJ切面所通知。
这个类的基本使用非常简单,如下所示。更多详细信息请查阅javadocs.

// 创建一个工厂,该工厂能够为一个给定的目标对象生成代理。
AspectJProxyFactory factory = new AspectJProxyFactory(targetObject);


// 添加一个切面,这个类必须是@AspectJ切面
// 你可以随需添加任意多个不同切面。
factory.addAspect(SecurityManager.class);

// 你也可以添加一个已经存在的切面实例,所提供的对象的类型必须是@aspectj切面
factory.addAspect(usageTracker);

// 上述操作后,你可以获取一个代理了
MyInterfaceType proxy = factory.getProxy();